package Week2;

import java.util.*;

public class Day8 {
}

//牛客:HJ108:求最小公倍数
//两个数的最小公倍数 = 两数相乘 / 两数的最大公约数
//最大公约数：辗转相除法
class Main3 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        int y = in.nextInt();
        int a = x;
        int b = y;
        int m = a % b;
        while(m != 0){
            a = b;
            b = m;
            m = a % b;
        }
        System.out.println((x * y) / b);
    }
}

//牛客:NC95:数组中的最长连续子序列
class Solution2 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * max increasing subsequence
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int MLS (int[] arr) {
        // write code here
        //排序
        Arrays.sort(arr);
        int len = 1;
        int ret = 0;
        for(int i = 1; i < arr.length; i++){
            //如果重复就跳过，减少时间
            if(arr[i] == arr[i-1]) continue;
            //如果前一个+1与后一个相等就让长度加一
            else if(arr[i] == arr[i-1] + 1){
                len++;
            }else{
                //如果不等，就记录此时的最大长度，然后重置长度
                ret = Math.max(ret,len);
                len = 1;
            }
        }
        //记录最大长度，防止遗漏最后
        ret = Math.max(ret,len);
        return ret;
    }
}

//牛客:DP39:字母收集
class Main4 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();
        //将字符放入数组中
        char[][] ch = new char[m][n];
        for(int i = 0; i < m; i++){
            String s = in.next();
            for(int j = 0; j < n; j++){
                ch[i][j] = s.charAt(j);
            }
        }

        //存储每个位置的最大得分
        int[][] enmo = new int[m+1][n+1];
        for(int i = 1; i <= m; i++){
            for(int j = 1; j <= n; j++){
                //找到这个位置的上面和左边的最大值加上此时位置的值就是这个位置的最大值
                enmo[i][j] = Math.max(enmo[i-1][j],enmo[i][j-1]) + getSorce(ch[i-1][j-1]);
            }
        }

        //遍历整个数据取最大值
        int ret = 0;
        for(int i = 1; i <= m; i++){
            for(int j = 1; j <= n; j++){
                ret = Math.max(ret,enmo[i][j]);
            }
        }
        System.out.println(ret);
    }

    //判断位置的分数
    public static int getSorce(char c){
        if(c == 'l') return 4;
        else if(c == 'o') return 3;
        else if(c == 'v') return 2;
        else if(c == 'e') return 1;
        else return 0;
    }
}